home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / src / sort.lha / Bubble_Sort.c < prev    next >
C/C++ Source or Header  |  2001-08-22  |  1KB  |  72 lines

  1. /*
  2. **  Bubble Sort Algorithmus in C
  3. **  Norman Walter, Universität Stuttgart
  4. **  Datum: 21.8.2001
  5. **
  6. **  Eigenschaften: Bubble Sort benötigt im Durchschnitt
  7. **  und im ungünstigsten Fall ungefähr N^2/2 Vergleiche
  8. **  und N^2/2 Austauschoperationen.
  9. */
  10.  
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13.  
  14. #define maxN 100
  15.  
  16. void display(int a[], int n)
  17. {
  18.  
  19. /* Gibt komplettes Array aus */
  20.  
  21.    int i;
  22.    for (i = 1; i <= n; i++) printf ("%d ", a[i]);
  23.     printf("\n");
  24. }
  25.  
  26. void bubble(int a[], int N)
  27.  
  28. /* Bubble-Sort Algorithmus */
  29. /* Sortieren durch direktes Austauschen */
  30.  
  31.   {
  32.  
  33.     /* Durchlaufe immer wieder die Datei und vertausche
  34.     ** jedesmal, wenn es notwendig ist, benachbarte Elemente;
  35.     ** wenn bei einem Durchlauf kein Austausch mehr erforderlich
  36.     ** ist, ist die Datei sortiert.
  37.     */
  38.  
  39.     int i, j, t;
  40.     for (i = N; i >= 1; i-- )
  41.         for (j = 2; j <= i; j++)
  42.             if (a[j-1] > a[j])
  43.                 { t = a[j-1]; a[j-1] = a[j]; a[j] = t;
  44.                     display(a,N); }
  45.   }
  46.  
  47. int main()
  48.  
  49. {
  50.  
  51. int i;
  52. int n, a[maxN+1];
  53.  
  54. /* Schleife erzeugt zufällige Permutation */
  55.  
  56.   for(n=0; n<=15; n++)
  57.   {
  58.     i = rand() % 10;
  59.     a[n+1] = i;
  60.     printf ("%d ",i);
  61.   }
  62.  
  63. printf("\n");
  64.  
  65. /* Array sortieren */
  66.  
  67. a[0] = 0; bubble(a,n);
  68.  
  69. return(0);
  70.  
  71. }
  72.